1. The Field of the Invention
The present invention relates to electronic messages and, more particularly, to presenting and manipulating electronic mail conversations.
2. Background and Relevant Art
Computer systems and related technology affect many aspects of society. Indeed, the computer system's ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, and database management) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. As a result, many tasks performed at a computer system (e.g., voice communication, accessing electronic mail, controlling home electronics, Web browsing, and printing documents) include the exchange of electronic messages between a number of computer systems and/or other electronic devices via wired and/or wireless computer networks.
Networks have in fact become so prolific that a simple network-enabled computing system may communicate with any one of millions of other computing systems spread throughout the globe over a conglomeration of networks often referred to as the “Internet”. Such computing systems may include desktop, laptop, or tablet personal computers; Personal Digital Assistants (PDAs); telephones; or any other computer or device capable of communicating over a digital network.
In particular, electronic mail has become an important method for communicating. To create an electronic mail message, a sending user typically manipulates input devices, such as a keyboard and mouse, within an electronic mail application to enter data (e.g. text and attachments) into the electronic mail message. The sending user also typically includes an electronic mail address of a recipient user in the electronic message, for example, by entering text in the “To” field. The sending user then sends the electronic mail message to the recipient user by selecting a “Send” control within the electronic mail application. Sending the electronic message can cause the electronic mail message to be routed from the sending user's computer system, through one or more intermediate mail servers, to a destination mail server that stores electronic mail messages for the recipient user (e.g., in accordance with the Simple Mail Transfer Protocol (“SMTP”).
To access the electronic mail message, the recipient user establishes a connection from an electronic mail application (at the recipient user's computer system) to the receiving mail server (e.g., in accordance with the Post Office Protocol (“POP) or Internet Message Access Protocol (“IMAP”)). The electronic mail message is downloaded over the connection and can be presented at the recipient user's computer system.
Due to quantity of electronic mail messages that entities receives, various mechanisms for organizing electronic mail messages have been developed. Typically, mail servers maintain one or more mail folders (e.g., inbox, outbox, sent items, SPAM, or user-defined folders) for each electronic mail user. Electronic mail messages can be transferred to different folders (either automatically or in response to user input) based on the message contents, user-created rules, or default server rules. For example, when an electronic mail message is sent to recipient user, the electronic mail message by default can be me moved to a “Sent Items” folder. Alternately, a recipient user, after receiving an electronic mail message from a family member, can manually transfer the received electronic mail message to a user-defined “Family” folder. In some environments, electronic mail rules can automatically move or copy an electronic mail message to a particular folder.
Using folders, an electronic mail user can access groups of electronic mail messages that have various similar characteristics. For example, an electronic mail user can access an “Inbox” folder to access received electronic messages or can access a “Family” to access electronic messages related to the electronic mail user's family.
In some environments, electronic mail users exchange a set of electronic mail messages that are part of the same “conversation.” For example, co-workers may exchange a set of electronic messages related to specified topic (e.g., where to go to lunch). Unfortunately, typical electronic mail applications are individual message centric. Thus, it may be difficult for one co-worker to identify that a number of individual messages from one or more other co-workers are all related to the specified topic and/or are part of the same conversation.
Some electronic mail applications loosely relate electronic message to one another such that the electronic messages can be presented at a user-interface as being part of the same conversation. For example, some electronic mail applications append a conversation index and/or conversation ID to electronic mail messages to identify a conversation and/or a position within the conversation. In some environments, specified electronic mail message headers can be used to identify relationships between electronic messages. For example, Request For Comments (“RFC”) 2822 “In-Reply-To” and “References” headers can be used to identify that an electronic mail message is related to one or more other electronic mail messages.
However, while electronic message headers and appended conversation IDs can be utilized to group electronic message for presentation, typical electronic mail applications do not create or maintain additional conversation specific data. For example, existing electric mail applications do not link electronic mail messages to a specified conversation item. Thus, presentation of a conversation view requires a user-interface to scan electronic mail messages in a folder for conversation IDs and/or message headers. Based on the scanned conversation IDs and/or message headers, the user-interface re-constructs a conversation tree the scanned messages. Unfortunately, the lack of conversation specific data also limits electronic mail message identification to electronic messages that are included in the same folder. That is, typical electronic mail applications can not identify electronic messages in different folders (e.g., in an “Inbox” folder and a “Sent Items” folder) as being part of the same conversation. Thus, presented conversation views of electronic messages are often incomplete.
Further, in part due to the lack of conversation specific data and inability to otherwise identify all the electronic mail messages in a conversation, there is typically no mechanism for performing an operation over all the messages that are included in a conversation. For example, it would be difficult, if not impossible, to create an electronic mail rule that automatically moves all electronic messages included a specific conversation to a specified electronic mail folder (e.g., to a SPAM or archive folder). Therefore systems, methods, data structures, and computer program products that facilitate organizing electronic mail messages into conversations would be advantageous.